﻿/**
 * 游戏区域类的构造方法。
 * @param id    游戏区域的 id
 */
function GameBoard(id) {
    // 创建前台绘图者
    const forgeCanvas = document.getElementById(id)
    forgeCanvas.mForgeDrawer = forgeCanvas.getContext("2d")

    // 创建后台画布
    forgeCanvas.mBackCanvas = document.createElement("canvas")
    forgeCanvas.mBackCanvas.width = forgeCanvas.width
    forgeCanvas.mBackCanvas.height = forgeCanvas.height

    // 创建后台绘图者
    forgeCanvas.mBackDrawer = forgeCanvas.mBackCanvas.getContext("2d")

    /**
     * 获取绘图者。
     * @return 绘图者
     */
    forgeCanvas.getDrawer = function() {
        return forgeCanvas.mBackDrawer
    }

    /**
     * 绘制。
     */
    forgeCanvas.repaint = function() {
        forgeCanvas.mForgeDrawer.drawImage(forgeCanvas.mBackCanvas, 0, 0)
    }

    /**
     * 窗口获取焦点事件的响应方法。
     */
    window.onfocus = function() {
        forgeCanvas.mForgeDrawer.drawImage(forgeCanvas.mBackCanvas, 0, 0)
    }

    return forgeCanvas
}
